Skip to content

Conversation

@arsenm
Copy link
Contributor

@arsenm arsenm commented Nov 20, 2025

This isn't quite a constant pool, but probably close enough for this
purpose. We just need some known invariant value address. The aliasing
queries against the real kernarg base pointer will falsely report
no aliasing, but for invariant memory it probably doesn't matter.

@llvmbot
Copy link
Member

llvmbot commented Nov 20, 2025

@llvm/pr-subscribers-llvm-globalisel

@llvm/pr-subscribers-backend-amdgpu

Author: Matt Arsenault (arsenm)

Changes

This isn't quite a constant pool, but probably close enough for this
purpose. We just need some known invariant value address. The aliasing
queries against the real kernarg base pointer will falsely report
no aliasing, but for invariant memory it probably doesn't matter.


Patch is 218.80 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/168917.diff

10 Files Affected:

  • (modified) llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp (+5-1)
  • (modified) llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp (+10-1)
  • (modified) llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (+20-7)
  • (modified) llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h (+1)
  • (modified) llvm/lib/Target/AMDGPU/SIISelLowering.cpp (+22-9)
  • (modified) llvm/lib/Target/AMDGPU/SIISelLowering.h (+2)
  • (modified) llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll (+216-216)
  • (modified) llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-load.mir (+73-73)
  • (modified) llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-split-scalar-load-metadata.mir (+8-8)
  • (modified) llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-widen-scalar-loads.mir (+76-76)
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
index 7afaddea164f8..1e935403bbec0 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
@@ -21,6 +21,7 @@
 #include "llvm/CodeGen/FunctionLoweringInfo.h"
 #include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
 #include "llvm/CodeGen/MachineFrameInfo.h"
+#include "llvm/CodeGen/PseudoSourceValueManager.h"
 #include "llvm/IR/IntrinsicsAMDGPU.h"
 
 #define DEBUG_TYPE "amdgpu-call-lowering"
@@ -414,7 +415,10 @@ void AMDGPUCallLowering::lowerParameter(MachineIRBuilder &B, ArgInfo &OrigArg,
   MachineFunction &MF = B.getMF();
   const Function &F = MF.getFunction();
   const DataLayout &DL = F.getDataLayout();
-  MachinePointerInfo PtrInfo(AMDGPUAS::CONSTANT_ADDRESS);
+
+  // This isn't really a constant pool but close enough.
+  MachinePointerInfo PtrInfo(MF.getPSVManager().getConstantPool(),
+                             AMDGPUAS::CONSTANT_ADDRESS);
 
   LLT PtrTy = LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64);
 
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp
index 7caafa16f9043..b7b87674ee658 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp
@@ -28,8 +28,17 @@ Intrinsic::ID AMDGPU::getIntrinsicID(const MachineInstr &I) {
 
 // TODO: Should largely merge with AMDGPUTTIImpl::isSourceOfDivergence.
 bool AMDGPU::isUniformMMO(const MachineMemOperand *MMO) {
-  // FIXME: null value is should be treated as unknown, not as uniform.
   const Value *Ptr = MMO->getValue();
+  if (!Ptr) {
+    if (const PseudoSourceValue *PSV = MMO->getPseudoValue()) {
+      return PSV->isConstantPool() || PSV->isStack() || PSV->isGOT() ||
+             PSV->isJumpTable();
+    }
+
+    // FIXME: null value is should be treated as unknown, not as uniform.
+    return true;
+  }
+
   // UndefValue means this is a load of a kernel input.  These are uniform.
   // Sometimes LDS instructions have constant pointers.
   // If Ptr is null, then that means this mem operand contains a
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
index 1a13b2226ecd6..e58ac85a29079 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
@@ -30,6 +30,7 @@
 #include "llvm/CodeGen/GlobalISel/MIPatternMatch.h"
 #include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
 #include "llvm/CodeGen/GlobalISel/Utils.h"
+#include "llvm/CodeGen/PseudoSourceValueManager.h"
 #include "llvm/CodeGen/TargetOpcodes.h"
 #include "llvm/IR/DiagnosticInfo.h"
 #include "llvm/IR/IntrinsicsAMDGPU.h"
@@ -2321,14 +2322,15 @@ Register AMDGPULegalizerInfo::getSegmentAperture(
     return B.buildUnmerge(S32, Dst).getReg(1);
   }
 
-  // TODO: can we be smarter about machine pointer info?
-  MachinePointerInfo PtrInfo(AMDGPUAS::CONSTANT_ADDRESS);
   Register LoadAddr = MRI.createGenericVirtualRegister(
     LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64));
   // For code object version 5, private_base and shared_base are passed through
   // implicit kernargs.
   if (AMDGPU::getAMDHSACodeObjectVersion(*MF.getFunction().getParent()) >=
       AMDGPU::AMDHSA_COV5) {
+    // TODO: can we be smarter about machine pointer info?
+    MachinePointerInfo PtrInfo = getKernargSegmentPtrInfo(B.getMF());
+
     AMDGPUTargetLowering::ImplicitParameter Param =
         AS == AMDGPUAS::LOCAL_ADDRESS ? AMDGPUTargetLowering::SHARED_BASE
                                       : AMDGPUTargetLowering::PRIVATE_BASE;
@@ -2343,7 +2345,7 @@ Register AMDGPULegalizerInfo::getSegmentAperture(
       return Register();
 
     MachineMemOperand *MMO = MF.getMachineMemOperand(
-        PtrInfo,
+        PtrInfo.getWithOffset(Offset),
         MachineMemOperand::MOLoad | MachineMemOperand::MODereferenceable |
             MachineMemOperand::MOInvariant,
         LLT::scalar(32), commonAlignment(Align(64), Offset));
@@ -2361,6 +2363,9 @@ Register AMDGPULegalizerInfo::getSegmentAperture(
   if (!loadInputValue(QueuePtr, B, AMDGPUFunctionArgInfo::QUEUE_PTR))
     return Register();
 
+  // TODO: can we be smarter about machine pointer info?
+  MachinePointerInfo PtrInfo(AMDGPUAS::CONSTANT_ADDRESS);
+
   // Offset into amd_queue_t for group_segment_aperture_base_hi /
   // private_segment_aperture_base_hi.
   uint32_t StructOffset = (AS == AMDGPUAS::LOCAL_ADDRESS) ? 0x40 : 0x44;
@@ -4709,6 +4714,14 @@ bool AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(
   return true;
 }
 
+MachinePointerInfo
+AMDGPULegalizerInfo::getKernargSegmentPtrInfo(MachineFunction &MF) const {
+  // This isn't really a constant pool but close enough.
+  MachinePointerInfo PtrInfo(MF.getPSVManager().getConstantPool());
+  PtrInfo.AddrSpace = AMDGPUAS::CONSTANT_ADDRESS;
+  return PtrInfo;
+}
+
 Register AMDGPULegalizerInfo::getKernargParameterPtr(MachineIRBuilder &B,
                                                      int64_t Offset) const {
   LLT PtrTy = LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64);
@@ -4736,8 +4749,8 @@ bool AMDGPULegalizerInfo::legalizeKernargMemParameter(MachineInstr &MI,
          "unexpected kernarg parameter type");
 
   Register Ptr = getKernargParameterPtr(B, Offset);
-  MachinePointerInfo PtrInfo(AMDGPUAS::CONSTANT_ADDRESS);
-  B.buildLoad(DstReg, Ptr, PtrInfo, Align(4),
+  MachinePointerInfo PtrInfo = getKernargSegmentPtrInfo(B.getMF());
+  B.buildLoad(DstReg, Ptr, PtrInfo.getWithOffset(Offset), Align(4),
               MachineMemOperand::MODereferenceable |
                   MachineMemOperand::MOInvariant);
   MI.eraseFromParent();
@@ -7260,9 +7273,9 @@ bool AMDGPULegalizerInfo::legalizeTrapHsaQueuePtr(
       return false;
 
     // TODO: can we be smarter about machine pointer info?
-    MachinePointerInfo PtrInfo(AMDGPUAS::CONSTANT_ADDRESS);
+    MachinePointerInfo PtrInfo = getKernargSegmentPtrInfo(MF);
     MachineMemOperand *MMO = MF.getMachineMemOperand(
-        PtrInfo,
+        PtrInfo.getWithOffset(Offset),
         MachineMemOperand::MOLoad | MachineMemOperand::MODereferenceable |
             MachineMemOperand::MOInvariant,
         LLT::scalar(64), commonAlignment(Align(64), Offset));
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
index cd44a9ba0807c..31db548d2af88 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
+++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
@@ -132,6 +132,7 @@ class AMDGPULegalizerInfo final : public LegalizerInfo {
       MachineInstr &MI, MachineRegisterInfo &MRI, MachineIRBuilder &B,
       unsigned Dim, AMDGPUFunctionArgInfo::PreloadedValue ArgType) const;
 
+  MachinePointerInfo getKernargSegmentPtrInfo(MachineFunction &MF) const;
   Register getKernargParameterPtr(MachineIRBuilder &B, int64_t Offset) const;
   bool legalizeKernargMemParameter(MachineInstr &MI, MachineIRBuilder &B,
                                    uint64_t Offset,
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
index c681d12ba7499..4fa3d6d81c7d0 100644
--- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -35,6 +35,7 @@
 #include "llvm/CodeGen/MachineFrameInfo.h"
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineLoopInfo.h"
+#include "llvm/CodeGen/PseudoSourceValueManager.h"
 #include "llvm/CodeGen/SDPatternMatch.h"
 #include "llvm/IR/DiagnosticInfo.h"
 #include "llvm/IR/IRBuilder.h"
@@ -2265,6 +2266,14 @@ bool SITargetLowering::isTypeDesirableForOp(unsigned Op, EVT VT) const {
   return TargetLowering::isTypeDesirableForOp(Op, VT);
 }
 
+MachinePointerInfo
+SITargetLowering::getKernargSegmentPtrInfo(MachineFunction &MF) const {
+  // This isn't really a constant pool but close enough.
+  MachinePointerInfo PtrInfo(MF.getPSVManager().getConstantPool());
+  PtrInfo.AddrSpace = AMDGPUAS::CONSTANT_ADDRESS;
+  return PtrInfo;
+}
+
 SDValue SITargetLowering::lowerKernArgParameterPtr(SelectionDAG &DAG,
                                                    const SDLoc &SL,
                                                    SDValue Chain,
@@ -2341,7 +2350,9 @@ SDValue SITargetLowering::lowerKernargMemParameter(
     SelectionDAG &DAG, EVT VT, EVT MemVT, const SDLoc &SL, SDValue Chain,
     uint64_t Offset, Align Alignment, bool Signed,
     const ISD::InputArg *Arg) const {
-  MachinePointerInfo PtrInfo(AMDGPUAS::CONSTANT_ADDRESS);
+
+  MachinePointerInfo PtrInfo =
+      getKernargSegmentPtrInfo(DAG.getMachineFunction());
 
   // Try to avoid using an extload by loading earlier than the argument address,
   // and extracting the relevant bits. The load should hopefully be merged with
@@ -2356,7 +2367,8 @@ SDValue SITargetLowering::lowerKernargMemParameter(
     // TODO: If we passed in the base kernel offset we could have a better
     // alignment than 4, but we don't really need it.
     SDValue Ptr = lowerKernArgParameterPtr(DAG, SL, Chain, AlignDownOffset);
-    SDValue Load = DAG.getLoad(MVT::i32, SL, Chain, Ptr, PtrInfo, Align(4),
+    SDValue Load = DAG.getLoad(MVT::i32, SL, Chain, Ptr,
+                               PtrInfo.getWithOffset(AlignDownOffset), Align(4),
                                MachineMemOperand::MODereferenceable |
                                    MachineMemOperand::MOInvariant);
 
@@ -2371,9 +2383,9 @@ SDValue SITargetLowering::lowerKernargMemParameter(
   }
 
   SDValue Ptr = lowerKernArgParameterPtr(DAG, SL, Chain, Offset);
-  SDValue Load = DAG.getLoad(MemVT, SL, Chain, Ptr, PtrInfo, Alignment,
-                             MachineMemOperand::MODereferenceable |
-                                 MachineMemOperand::MOInvariant);
+  SDValue Load = DAG.getLoad(
+      MemVT, SL, Chain, Ptr, PtrInfo.getWithOffset(Offset), Alignment,
+      MachineMemOperand::MODereferenceable | MachineMemOperand::MOInvariant);
 
   SDValue Val = convertArgType(DAG, VT, MemVT, SL, Load, Signed, Arg);
   return DAG.getMergeValues({Val, Load.getValue(1)}, SL);
@@ -8109,10 +8121,11 @@ SITargetLowering::loadImplicitKernelArgument(SelectionDAG &DAG, MVT VT,
   MachineFunction &MF = DAG.getMachineFunction();
   uint64_t Offset = getImplicitParameterOffset(MF, Param);
   SDValue Ptr = lowerKernArgParameterPtr(DAG, DL, DAG.getEntryNode(), Offset);
-  MachinePointerInfo PtrInfo(AMDGPUAS::CONSTANT_ADDRESS);
-  return DAG.getLoad(VT, DL, DAG.getEntryNode(), Ptr, PtrInfo, Alignment,
-                     MachineMemOperand::MODereferenceable |
-                         MachineMemOperand::MOInvariant);
+  MachinePointerInfo PtrInfo =
+      getKernargSegmentPtrInfo(DAG.getMachineFunction());
+  return DAG.getLoad(
+      VT, DL, DAG.getEntryNode(), Ptr, PtrInfo.getWithOffset(Offset), Alignment,
+      MachineMemOperand::MODereferenceable | MachineMemOperand::MOInvariant);
 }
 
 SDValue SITargetLowering::lowerTrapHsaQueuePtr(SDValue Op,
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.h b/llvm/lib/Target/AMDGPU/SIISelLowering.h
index 74e58f4272e10..c5b5d0d0891f0 100644
--- a/llvm/lib/Target/AMDGPU/SIISelLowering.h
+++ b/llvm/lib/Target/AMDGPU/SIISelLowering.h
@@ -46,6 +46,8 @@ class SITargetLowering final : public AMDGPUTargetLowering {
     unsigned &NumIntermediates, MVT &RegisterVT) const override;
 
 private:
+  MachinePointerInfo getKernargSegmentPtrInfo(MachineFunction &MF) const;
+
   SDValue lowerKernArgParameterPtr(SelectionDAG &DAG, const SDLoc &SL,
                                    SDValue Chain, uint64_t Offset) const;
   SDValue getImplicitArgPtr(SelectionDAG &DAG, const SDLoc &SL) const;
diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll b/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll
index 11153bbbba612..23d2e7d67fcf8 100644
--- a/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll
+++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll
@@ -10,10 +10,10 @@ define amdgpu_kernel void @i8_arg(ptr addrspace(1) nocapture %out, i8 %in) nounw
   ; HSA-VI-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9
   ; HSA-VI-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
   ; HSA-VI-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C]](s64)
-  ; HSA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1), align 16, addrspace 4)
+  ; HSA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
   ; HSA-VI-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 8
   ; HSA-VI-NEXT:   [[PTR_ADD1:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C1]](s64)
-  ; HSA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8), align 8, addrspace 4)
+  ; HSA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8) from constant-pool + 4, align 4, basealign 8, addrspace 4)
   ; HSA-VI-NEXT:   [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[LOAD1]](s8)
   ; HSA-VI-NEXT:   G_STORE [[ZEXT]](s32), [[LOAD]](p1) :: (store (s32) into %ir.out, addrspace 1)
   ; HSA-VI-NEXT:   S_ENDPGM 0
@@ -25,10 +25,10 @@ define amdgpu_kernel void @i8_arg(ptr addrspace(1) nocapture %out, i8 %in) nounw
   ; LEGACY-MESA-VI-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr4_sgpr5
   ; LEGACY-MESA-VI-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 36
   ; LEGACY-MESA-VI-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C]](s64)
-  ; LEGACY-MESA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1), align 4, addrspace 4)
+  ; LEGACY-MESA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, addrspace 4)
   ; LEGACY-MESA-VI-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 44
   ; LEGACY-MESA-VI-NEXT:   [[PTR_ADD1:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C1]](s64)
-  ; LEGACY-MESA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8), align 4, addrspace 4)
+  ; LEGACY-MESA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8) from constant-pool + 4, align 4, addrspace 4)
   ; LEGACY-MESA-VI-NEXT:   [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[LOAD1]](s8)
   ; LEGACY-MESA-VI-NEXT:   G_STORE [[ZEXT]](s32), [[LOAD]](p1) :: (store (s32) into %ir.out, addrspace 1)
   ; LEGACY-MESA-VI-NEXT:   S_ENDPGM 0
@@ -45,10 +45,10 @@ define amdgpu_kernel void @i8_zext_arg(ptr addrspace(1) nocapture %out, i8 zeroe
   ; HSA-VI-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9
   ; HSA-VI-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
   ; HSA-VI-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C]](s64)
-  ; HSA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1), align 16, addrspace 4)
+  ; HSA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
   ; HSA-VI-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 8
   ; HSA-VI-NEXT:   [[PTR_ADD1:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C1]](s64)
-  ; HSA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8), align 8, addrspace 4)
+  ; HSA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8) from constant-pool + 4, align 4, basealign 8, addrspace 4)
   ; HSA-VI-NEXT:   [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[LOAD1]](s8)
   ; HSA-VI-NEXT:   G_STORE [[ZEXT]](s32), [[LOAD]](p1) :: (store (s32) into %ir.out, addrspace 1)
   ; HSA-VI-NEXT:   S_ENDPGM 0
@@ -60,10 +60,10 @@ define amdgpu_kernel void @i8_zext_arg(ptr addrspace(1) nocapture %out, i8 zeroe
   ; LEGACY-MESA-VI-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr4_sgpr5
   ; LEGACY-MESA-VI-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 36
   ; LEGACY-MESA-VI-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C]](s64)
-  ; LEGACY-MESA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1), align 4, addrspace 4)
+  ; LEGACY-MESA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, addrspace 4)
   ; LEGACY-MESA-VI-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 44
   ; LEGACY-MESA-VI-NEXT:   [[PTR_ADD1:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C1]](s64)
-  ; LEGACY-MESA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8), align 4, addrspace 4)
+  ; LEGACY-MESA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8) from constant-pool + 4, align 4, addrspace 4)
   ; LEGACY-MESA-VI-NEXT:   [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[LOAD1]](s8)
   ; LEGACY-MESA-VI-NEXT:   G_STORE [[ZEXT]](s32), [[LOAD]](p1) :: (store (s32) into %ir.out, addrspace 1)
   ; LEGACY-MESA-VI-NEXT:   S_ENDPGM 0
@@ -80,10 +80,10 @@ define amdgpu_kernel void @i8_sext_arg(ptr addrspace(1) nocapture %out, i8 signe
   ; HSA-VI-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9
   ; HSA-VI-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
   ; HSA-VI-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C]](s64)
-  ; HSA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1), align 16, addrspace 4)
+  ; HSA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
   ; HSA-VI-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 8
   ; HSA-VI-NEXT:   [[PTR_ADD1:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C1]](s64)
-  ; HSA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8), align 8, addrspace 4)
+  ; HSA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8) from constant-pool + 4, align 4, basealign 8, addrspace 4)
   ; HSA-VI-NEXT:   [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[LOAD1]](s8)
   ; HSA-VI-NEXT:   G_STORE [[SEXT]](s32), [[LOAD]](p1) :: (store (s32) into %ir.out, addrspace 1)
   ; HSA-VI-NEXT:   S_ENDPGM 0
@@ -95,10 +95,10 @@ define amdgpu_kernel void @i8_sext_arg(ptr addrspace(1) nocapture %out, i8 signe
   ; LEGACY-MESA-VI-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr4_sgpr5
   ; LEGACY-MESA-VI-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 36
   ; LEGACY-MESA-VI-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C]](s64)
-  ; LEGACY-MESA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1), align 4, addrspace 4)
+  ; LEGACY-MESA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, addrspace 4)
   ; LEGACY-MESA-VI-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 44
   ; LEGACY-MESA-VI-NEXT:   [[PTR_ADD1:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C1]](s64)
-  ; LEGACY-MESA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8), align 4, addrspace 4)
+  ; LEGACY-MESA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s8) = G_LOAD [[PTR_ADD1]](p4) :: (dereferenceable invariant load (s8) from constant-pool + 4, align 4, addrspace 4)
   ; LEGACY-MESA-VI-NEXT:   [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[LOAD1]](s8)
   ; LEGACY-MESA-VI-NEXT:   G_STORE [[SEXT]](s32), [[LOAD]](p1) :: (store (s32) into %ir.out, addrspace 1)
   ; LEGACY-MESA-VI-NEXT:   S_ENDPGM 0
@@ -115,10 +115,10 @@ define amdgpu_kernel void @i16_arg(ptr addrspace(1) nocapture %out, i16 %in) nou
   ; HSA-VI-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9
   ; HSA-VI-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
   ; HSA-VI-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C]](s64)
-  ; HSA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1), align 16, addrspace 4)
+  ; HSA-VI-NEXT:   [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
   ; HSA-VI-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 8
   ; HSA-VI-NEXT:   [[PTR_ADD1:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[C1]](s64)
-  ; HSA-VI-NEXT:   [[LOAD1:%[0-9]+]]:_(s16) = G_...
[truncated]

@github-actions
Copy link

github-actions bot commented Nov 20, 2025

🐧 Linux x64 Test Results

  • 166597 tests passed
  • 2895 tests skipped
  • 1 test failed

Failed Tests

(click on a test name to see its output)

LLVM

LLVM.CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=fiji -amdgpu-ir-lower-kernel-arguments=0 -stop-after=irtranslator /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=HSA-VI /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -global-isel -mtriple=amdgcn-amd-amdhsa -mcpu=fiji -amdgpu-ir-lower-kernel-arguments=0 -stop-after=irtranslator /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck -check-prefix=HSA-VI /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:13:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:565:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:565:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:566:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:48:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:718:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:718:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:719:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:83:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:871:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:871:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:872:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:118:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:1024:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1024:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1025:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:153:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:1177:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1177:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1178:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:188:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:1330:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1330:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1331:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:223:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:1482:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1482:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1483:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:256:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:1633:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1633:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1634:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:289:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:1784:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1784:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1785:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:322:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:1935:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1935:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:1936:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:355:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:2086:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2086:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2087:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:388:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:2237:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2237:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2238:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:421:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:2388:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2388:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2389:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:454:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:2539:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2539:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2540:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:487:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:2690:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2690:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2691:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:520:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:2841:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2841:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2842:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:553:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:2992:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2992:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:2993:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:586:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:3143:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3143:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3144:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:619:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:3294:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3294:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3295:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:652:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:3445:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3445:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3446:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:685:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:3596:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3596:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3597:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:718:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:3747:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3747:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3748:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:751:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:3898:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3898:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:3899:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:784:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:4049:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4049:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4050:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:817:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:4200:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4200:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4201:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:850:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:4351:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4351:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4352:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:883:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:4502:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4502:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4503:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:916:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:4653:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4653:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4654:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:949:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:4804:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4804:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4805:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:981:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:4955:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4955:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:4956:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1014:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:5106:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:5106:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:5107:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1046:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:5258:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:5258:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:5259:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1081:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:5411:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:5411:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:5412:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1116:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:5564:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:5564:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:5565:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1151:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:5717:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:5717:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:5718:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1188:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (s32) from constant-pool + 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:5867:34: note: scanning from here
# |  %7:_(p4) = G_PTR_ADD %4, %8(s64)
# |                                  ^
# | <stdin>:5867:34: note: with "PTR_ADD" equal to "%7"
# |  %7:_(p4) = G_PTR_ADD %4, %8(s64)
# |                                  ^
# | <stdin>:5868:2: note: possible intended match here
# |  %0:_(s32) = G_LOAD %7(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1216:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (s32) from constant-pool + 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:6014:34: note: scanning from here
# |  %7:_(p4) = G_PTR_ADD %4, %8(s64)
# |                                  ^
# | <stdin>:6014:34: note: with "PTR_ADD" equal to "%7"
# |  %7:_(p4) = G_PTR_ADD %4, %8(s64)
# |                                  ^
# | <stdin>:6015:2: note: possible intended match here
# |  %0:_(s32) = G_LOAD %7(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1252:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (s32) from constant-pool + 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:6173:36: note: scanning from here
# |  %11:_(p4) = G_PTR_ADD %8, %12(s64)
# |                                    ^
# | <stdin>:6173:36: note: with "PTR_ADD" equal to "%11"
# |  %11:_(p4) = G_PTR_ADD %8, %12(s64)
# |                                    ^
# | <stdin>:6174:2: note: possible intended match here
# |  %0:_(s32) = G_LOAD %11(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1320:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p3) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (s32) from constant-pool + 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:6348:36: note: scanning from here
# |  %11:_(p4) = G_PTR_ADD %8, %12(s64)
# |                                    ^
# | <stdin>:6348:36: note: with "PTR_ADD" equal to "%11"
# |  %11:_(p4) = G_PTR_ADD %8, %12(s64)
# |                                    ^
# | <stdin>:6349:2: note: possible intended match here
# |  %0:_(p3) = G_LOAD %11(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1390:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (s32) from constant-pool + 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:6521:36: note: scanning from here
# |  %11:_(p4) = G_PTR_ADD %8, %12(s64)
# |                                    ^
# | <stdin>:6521:36: note: with "PTR_ADD" equal to "%11"
# |  %11:_(p4) = G_PTR_ADD %8, %12(s64)
# |                                    ^
# | <stdin>:6522:2: note: possible intended match here
# |  %0:_(s32) = G_LOAD %11(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1468:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:6824:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:6824:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:6825:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1504:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:6977:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:6977:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:6978:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1540:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:7132:35: note: scanning from here
# |  %9:_(p4) = G_PTR_ADD %6, %10(s64)
# |                                   ^
# | <stdin>:7132:35: note: with "PTR_ADD" equal to "%9"
# |  %9:_(p4) = G_PTR_ADD %6, %10(s64)
# |                                   ^
# | <stdin>:7133:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %9(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1582:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:7290:35: note: scanning from here
# |  %9:_(p4) = G_PTR_ADD %6, %10(s64)
# |                                   ^
# | <stdin>:7290:35: note: with "PTR_ADD" equal to "%9"
# |  %9:_(p4) = G_PTR_ADD %6, %10(s64)
# |                                   ^
# | <stdin>:7291:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %9(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1624:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:7448:35: note: scanning from here
# |  %9:_(p4) = G_PTR_ADD %6, %10(s64)
# |                                   ^
# | <stdin>:7448:35: note: with "PTR_ADD" equal to "%9"
# |  %9:_(p4) = G_PTR_ADD %6, %10(s64)
# |                                   ^
# | <stdin>:7449:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %9(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1666:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:7607:36: note: scanning from here
# |  %10:_(p4) = G_PTR_ADD %7, %11(s64)
# |                                    ^
# | <stdin>:7607:36: note: with "PTR_ADD" equal to "%10"
# |  %10:_(p4) = G_PTR_ADD %7, %11(s64)
# |                                    ^
# | <stdin>:7608:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %10(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1709:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:7763:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:7763:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:7764:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1744:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:7916:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:7916:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:7917:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1779:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:8069:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:8069:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:8070:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1814:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:8222:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:8222:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:8223:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1850:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:8375:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:8375:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:8376:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1885:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p1) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p1) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:8533:36: note: scanning from here
# |  %10:_(p4) = G_PTR_ADD %7, %11(s64)
# |                                    ^
# | <stdin>:8533:36: note: with "PTR_ADD" equal to "%10"
# |  %10:_(p4) = G_PTR_ADD %7, %11(s64)
# |                                    ^
# | <stdin>:8534:2: note: possible intended match here
# |  %0:_(p1) = G_LOAD %10(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:1966:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(p3) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (p3) from constant-pool + 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:8837:34: note: scanning from here
# |  %7:_(p4) = G_PTR_ADD %4, %8(s64)
# |                                  ^
# | <stdin>:8837:34: note: with "PTR_ADD" equal to "%7"
# |  %7:_(p4) = G_PTR_ADD %4, %8(s64)
# |                                  ^
# | <stdin>:8838:2: note: possible intended match here
# |  %0:_(p3) = G_LOAD %7(p4) :: (dereferenceable invariant load (p3) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:2018:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(<2 x p1>) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (<2 x p1>) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:9128:34: note: scanning from here
# |  %7:_(p4) = G_PTR_ADD %4, %8(s64)
# |                                  ^
# | <stdin>:9128:34: note: with "PTR_ADD" equal to "%7"
# |  %7:_(p4) = G_PTR_ADD %4, %8(s64)
# |                                  ^
# | <stdin>:9129:2: note: possible intended match here
# |  %0:_(<2 x p1>) = G_LOAD %7(p4) :: (dereferenceable invariant load (<2 x p1>) from constant-pool, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:2046:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(<2 x p3>) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (<2 x p3>) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:9275:34: note: scanning from here
# |  %7:_(p4) = G_PTR_ADD %4, %8(s64)
# |                                  ^
# | <stdin>:9275:34: note: with "PTR_ADD" equal to "%7"
# |  %7:_(p4) = G_PTR_ADD %4, %8(s64)
# |                                  ^
# | <stdin>:9276:2: note: possible intended match here
# |  %0:_(<2 x p3>) = G_LOAD %7(p4) :: (dereferenceable invariant load (<2 x p3>) from constant-pool, align 16, addrspace 4)
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll:2074:17: error: HSA-VI-NEXT: expected string not found in input
# |  ; HSA-VI-NEXT: [[LOAD:%[0-9]+]]:_(<2 x p1>) = G_LOAD [[PTR_ADD]](p4) :: (dereferenceable invariant load (<2 x s64>) from constant-pool + 4, align 4, basealign 16, addrspace 4)
# |                 ^
# | <stdin>:9427:34: note: scanning from here
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:9427:34: note: with "PTR_ADD" equal to "%8"
# |  %8:_(p4) = G_PTR_ADD %5, %9(s64)
# |                                  ^
# | <stdin>:9431:2: note: possible intended match here
# |  %1:_(<2 x p3>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<2 x s32>) from constant-pool, align 16, addrspace 4)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_kernel.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            560:  bb.1 (%ir-block.0): 
# |            561:  liveins: $sgpr8_sgpr9 
# |            562:   
# |            563:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |            564:  %9:_(s64) = G_CONSTANT i64 0 
# |            565:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:13'0                                        X error: no match found
# | next:13'1                                          with "PTR_ADD" equal to "%8"
# |            566:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:13'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:13'2        ?                                                                                                            possible intended match
# |            567:  %11:_(s64) = G_CONSTANT i64 8 
# | next:13'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            568:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:13'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            569:  %1:_(s8) = G_LOAD %10(p4) :: (dereferenceable invariant load (s8) from constant-pool, align 8, addrspace 4) 
# | next:13'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            570:  %19:_(s32) = G_ZEXT %1(s8) 
# | next:13'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            571:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:13'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            713:  bb.1 (%ir-block.0): 
# |            714:  liveins: $sgpr8_sgpr9 
# |            715:   
# |            716:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |            717:  %9:_(s64) = G_CONSTANT i64 0 
# |            718:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:48'0                                        X error: no match found
# | next:48'1                                          with "PTR_ADD" equal to "%8"
# |            719:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:48'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:48'2        ?                                                                                                            possible intended match
# |            720:  %11:_(s64) = G_CONSTANT i64 8 
# | next:48'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            721:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:48'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            722:  %1:_(s8) = G_LOAD %10(p4) :: (dereferenceable invariant load (s8) from constant-pool, align 8, addrspace 4) 
# | next:48'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            723:  %19:_(s32) = G_ZEXT %1(s8) 
# | next:48'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            724:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:48'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            866:  bb.1 (%ir-block.0): 
# |            867:  liveins: $sgpr8_sgpr9 
# |            868:   
# |            869:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |            870:  %9:_(s64) = G_CONSTANT i64 0 
# |            871:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:83'0                                        X error: no match found
# | next:83'1                                          with "PTR_ADD" equal to "%8"
# |            872:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:83'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:83'2        ?                                                                                                            possible intended match
# |            873:  %11:_(s64) = G_CONSTANT i64 8 
# | next:83'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            874:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:83'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            875:  %1:_(s8) = G_LOAD %10(p4) :: (dereferenceable invariant load (s8) from constant-pool, align 8, addrspace 4) 
# | next:83'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            876:  %19:_(s32) = G_SEXT %1(s8) 
# | next:83'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            877:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:83'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1019:  bb.1 (%ir-block.0): 
# |           1020:  liveins: $sgpr8_sgpr9 
# |           1021:   
# |           1022:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           1023:  %9:_(s64) = G_CONSTANT i64 0 
# |           1024:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:118'0                                       X error: no match found
# | next:118'1                                         with "PTR_ADD" equal to "%8"
# |           1025:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:118'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:118'2       ?                                                                                                            possible intended match
# |           1026:  %11:_(s64) = G_CONSTANT i64 8 
# | next:118'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1027:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:118'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1028:  %1:_(s16) = G_LOAD %10(p4) :: (dereferenceable invariant load (s16) from constant-pool, align 8, addrspace 4) 
# | next:118'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1029:  %19:_(s32) = G_ZEXT %1(s16) 
# | next:118'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1030:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:118'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1172:  bb.1 (%ir-block.0): 
# |           1173:  liveins: $sgpr8_sgpr9 
# |           1174:   
# |           1175:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           1176:  %9:_(s64) = G_CONSTANT i64 0 
# |           1177:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:153'0                                       X error: no match found
# | next:153'1                                         with "PTR_ADD" equal to "%8"
# |           1178:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:153'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:153'2       ?                                                                                                            possible intended match
# |           1179:  %11:_(s64) = G_CONSTANT i64 8 
# | next:153'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1180:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:153'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1181:  %1:_(s16) = G_LOAD %10(p4) :: (dereferenceable invariant load (s16) from constant-pool, align 8, addrspace 4) 
# | next:153'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1182:  %19:_(s32) = G_ZEXT %1(s16) 
# | next:153'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1183:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:153'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1325:  bb.1 (%ir-block.0): 
# |           1326:  liveins: $sgpr8_sgpr9 
# |           1327:   
# |           1328:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           1329:  %9:_(s64) = G_CONSTANT i64 0 
# |           1330:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:188'0                                       X error: no match found
# | next:188'1                                         with "PTR_ADD" equal to "%8"
# |           1331:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:188'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:188'2       ?                                                                                                            possible intended match
# |           1332:  %11:_(s64) = G_CONSTANT i64 8 
# | next:188'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1333:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:188'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1334:  %1:_(s16) = G_LOAD %10(p4) :: (dereferenceable invariant load (s16) from constant-pool, align 8, addrspace 4) 
# | next:188'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1335:  %19:_(s32) = G_SEXT %1(s16) 
# | next:188'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1336:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:188'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1477:  bb.1.entry: 
# |           1478:  liveins: $sgpr8_sgpr9 
# |           1479:   
# |           1480:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           1481:  %9:_(s64) = G_CONSTANT i64 0 
# |           1482:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:223'0                                       X error: no match found
# | next:223'1                                         with "PTR_ADD" equal to "%8"
# |           1483:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:223'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:223'2       ?                                                                                                            possible intended match
# |           1484:  %11:_(s64) = G_CONSTANT i64 8 
# | next:223'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1485:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:223'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1486:  %1:_(s32) = G_LOAD %10(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 8, addrspace 4) 
# | next:223'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1487:  G_STORE %1(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:223'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1488:  S_ENDPGM 0 
# | next:223'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1628:  bb.1.entry: 
# |           1629:  liveins: $sgpr8_sgpr9 
# |           1630:   
# |           1631:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           1632:  %9:_(s64) = G_CONSTANT i64 0 
# |           1633:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:256'0                                       X error: no match found
# | next:256'1                                         with "PTR_ADD" equal to "%8"
# |           1634:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:256'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:256'2       ?                                                                                                            possible intended match
# |           1635:  %11:_(s64) = G_CONSTANT i64 8 
# | next:256'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1636:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:256'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1637:  %1:_(s32) = G_LOAD %10(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 8, addrspace 4) 
# | next:256'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1638:  G_STORE %1(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:256'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1639:  S_ENDPGM 0 
# | next:256'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1779:  bb.1.entry: 
# |           1780:  liveins: $sgpr8_sgpr9 
# |           1781:   
# |           1782:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           1783:  %9:_(s64) = G_CONSTANT i64 0 
# |           1784:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:289'0                                       X error: no match found
# | next:289'1                                         with "PTR_ADD" equal to "%8"
# |           1785:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:289'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:289'2       ?                                                                                                            possible intended match
# |           1786:  %11:_(s64) = G_CONSTANT i64 8 
# | next:289'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1787:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:289'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1788:  %1:_(<2 x s8>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<2 x s8>) from constant-pool, align 8, addrspace 4) 
# | next:289'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1789:  G_STORE %1(<2 x s8>), %0(p1) :: (store (<2 x s8>) into %ir.out, addrspace 1) 
# | next:289'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1790:  S_ENDPGM 0 
# | next:289'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           1930:  bb.1.entry: 
# |           1931:  liveins: $sgpr8_sgpr9 
# |           1932:   
# |           1933:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           1934:  %9:_(s64) = G_CONSTANT i64 0 
# |           1935:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:322'0                                       X error: no match found
# | next:322'1                                         with "PTR_ADD" equal to "%8"
# |           1936:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:322'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:322'2       ?                                                                                                            possible intended match
# |           1937:  %11:_(s64) = G_CONSTANT i64 8 
# | next:322'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1938:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:322'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1939:  %1:_(<2 x s16>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<2 x s16>) from constant-pool, align 8, addrspace 4) 
# | next:322'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1940:  G_STORE %1(<2 x s16>), %0(p1) :: (store (<2 x s16>) into %ir.out, addrspace 1) 
# | next:322'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           1941:  S_ENDPGM 0 
# | next:322'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           2081:  bb.1.entry: 
# |           2082:  liveins: $sgpr8_sgpr9 
# |           2083:   
# |           2084:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           2085:  %9:_(s64) = G_CONSTANT i64 0 
# |           2086:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:355'0                                       X error: no match found
# | next:355'1                                         with "PTR_ADD" equal to "%8"
# |           2087:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:355'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:355'2       ?                                                                                                            possible intended match
# |           2088:  %11:_(s64) = G_CONSTANT i64 8 
# | next:355'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2089:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:355'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2090:  %1:_(<2 x s32>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<2 x s32>) from constant-pool, addrspace 4) 
# | next:355'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2091:  G_STORE %1(<2 x s32>), %0(p1) :: (store (<2 x s32>) into %ir.out, align 4, addrspace 1) 
# | next:355'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2092:  S_ENDPGM 0 
# | next:355'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           2232:  bb.1.entry: 
# |           2233:  liveins: $sgpr8_sgpr9 
# |           2234:   
# |           2235:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           2236:  %9:_(s64) = G_CONSTANT i64 0 
# |           2237:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:388'0                                       X error: no match found
# | next:388'1                                         with "PTR_ADD" equal to "%8"
# |           2238:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:388'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:388'2       ?                                                                                                            possible intended match
# |           2239:  %11:_(s64) = G_CONSTANT i64 8 
# | next:388'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2240:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:388'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2241:  %1:_(<2 x s32>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<2 x s32>) from constant-pool, addrspace 4) 
# | next:388'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2242:  G_STORE %1(<2 x s32>), %0(p1) :: (store (<2 x s32>) into %ir.out, align 4, addrspace 1) 
# | next:388'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2243:  S_ENDPGM 0 
# | next:388'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           2383:  bb.1.entry: 
# |           2384:  liveins: $sgpr8_sgpr9 
# |           2385:   
# |           2386:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           2387:  %9:_(s64) = G_CONSTANT i64 0 
# |           2388:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:421'0                                       X error: no match found
# | next:421'1                                         with "PTR_ADD" equal to "%8"
# |           2389:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:421'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:421'2       ?                                                                                                            possible intended match
# |           2390:  %11:_(s64) = G_CONSTANT i64 8 
# | next:421'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2391:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:421'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2392:  %1:_(<3 x s8>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<3 x s8>) from constant-pool, align 8, addrspace 4) 
# | next:421'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2393:  G_STORE %1(<3 x s8>), %0(p1) :: (store (<3 x s8>) into %ir.out, align 4, addrspace 1) 
# | next:421'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2394:  S_ENDPGM 0 
# | next:421'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           2534:  bb.1.entry: 
# |           2535:  liveins: $sgpr8_sgpr9 
# |           2536:   
# |           2537:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           2538:  %9:_(s64) = G_CONSTANT i64 0 
# |           2539:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:454'0                                       X error: no match found
# | next:454'1                                         with "PTR_ADD" equal to "%8"
# |           2540:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:454'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:454'2       ?                                                                                                            possible intended match
# |           2541:  %11:_(s64) = G_CONSTANT i64 8 
# | next:454'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2542:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:454'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2543:  %1:_(<3 x s16>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<3 x s16>) from constant-pool, align 8, addrspace 4) 
# | next:454'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2544:  G_STORE %1(<3 x s16>), %0(p1) :: (store (<3 x s16>) into %ir.out, align 4, addrspace 1) 
# | next:454'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2545:  S_ENDPGM 0 
# | next:454'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           2685:  bb.1.entry: 
# |           2686:  liveins: $sgpr8_sgpr9 
# |           2687:   
# |           2688:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           2689:  %9:_(s64) = G_CONSTANT i64 0 
# |           2690:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:487'0                                       X error: no match found
# | next:487'1                                         with "PTR_ADD" equal to "%8"
# |           2691:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:487'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:487'2       ?                                                                                                            possible intended match
# |           2692:  %11:_(s64) = G_CONSTANT i64 16 
# | next:487'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2693:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:487'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2694:  %1:_(<3 x s32>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<3 x s32>) from constant-pool, align 16, addrspace 4) 
# | next:487'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2695:  G_STORE %1(<3 x s32>), %0(p1) :: (store (<3 x s32>) into %ir.out, align 4, addrspace 1) 
# | next:487'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2696:  S_ENDPGM 0 
# | next:487'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           2836:  bb.1.entry: 
# |           2837:  liveins: $sgpr8_sgpr9 
# |           2838:   
# |           2839:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           2840:  %9:_(s64) = G_CONSTANT i64 0 
# |           2841:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:520'0                                       X error: no match found
# | next:520'1                                         with "PTR_ADD" equal to "%8"
# |           2842:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:520'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:520'2       ?                                                                                                            possible intended match
# |           2843:  %11:_(s64) = G_CONSTANT i64 16 
# | next:520'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2844:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:520'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2845:  %1:_(<3 x s32>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<3 x s32>) from constant-pool, align 16, addrspace 4) 
# | next:520'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2846:  G_STORE %1(<3 x s32>), %0(p1) :: (store (<3 x s32>) into %ir.out, align 4, addrspace 1) 
# | next:520'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2847:  S_ENDPGM 0 
# | next:520'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           2987:  bb.1.entry: 
# |           2988:  liveins: $sgpr8_sgpr9 
# |           2989:   
# |           2990:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           2991:  %9:_(s64) = G_CONSTANT i64 0 
# |           2992:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:553'0                                       X error: no match found
# | next:553'1                                         with "PTR_ADD" equal to "%8"
# |           2993:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:553'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:553'2       ?                                                                                                            possible intended match
# |           2994:  %11:_(s64) = G_CONSTANT i64 8 
# | next:553'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2995:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:553'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2996:  %1:_(<4 x s8>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<4 x s8>) from constant-pool, align 8, addrspace 4) 
# | next:553'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2997:  G_STORE %1(<4 x s8>), %0(p1) :: (store (<4 x s8>) into %ir.out, addrspace 1) 
# | next:553'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           2998:  S_ENDPGM 0 
# | next:553'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           3138:  bb.1.entry: 
# |           3139:  liveins: $sgpr8_sgpr9 
# |           3140:   
# |           3141:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           3142:  %9:_(s64) = G_CONSTANT i64 0 
# |           3143:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:586'0                                       X error: no match found
# | next:586'1                                         with "PTR_ADD" equal to "%8"
# |           3144:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:586'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:586'2       ?                                                                                                            possible intended match
# |           3145:  %11:_(s64) = G_CONSTANT i64 8 
# | next:586'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3146:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:586'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3147:  %1:_(<4 x s16>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<4 x s16>) from constant-pool, addrspace 4) 
# | next:586'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3148:  G_STORE %1(<4 x s16>), %0(p1) :: (store (<4 x s16>) into %ir.out, addrspace 1) 
# | next:586'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3149:  S_ENDPGM 0 
# | next:586'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           3289:  bb.1.entry: 
# |           3290:  liveins: $sgpr8_sgpr9 
# |           3291:   
# |           3292:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           3293:  %9:_(s64) = G_CONSTANT i64 0 
# |           3294:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:619'0                                       X error: no match found
# | next:619'1                                         with "PTR_ADD" equal to "%8"
# |           3295:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:619'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:619'2       ?                                                                                                            possible intended match
# |           3296:  %11:_(s64) = G_CONSTANT i64 16 
# | next:619'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3297:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:619'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3298:  %1:_(<4 x s32>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<4 x s32>) from constant-pool, addrspace 4) 
# | next:619'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3299:  G_STORE %1(<4 x s32>), %0(p1) :: (store (<4 x s32>) into %ir.out, align 4, addrspace 1) 
# | next:619'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3300:  S_ENDPGM 0 
# | next:619'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           3440:  bb.1.entry: 
# |           3441:  liveins: $sgpr8_sgpr9 
# |           3442:   
# |           3443:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           3444:  %9:_(s64) = G_CONSTANT i64 0 
# |           3445:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:652'0                                       X error: no match found
# | next:652'1                                         with "PTR_ADD" equal to "%8"
# |           3446:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:652'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:652'2       ?                                                                                                            possible intended match
# |           3447:  %11:_(s64) = G_CONSTANT i64 16 
# | next:652'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3448:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:652'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3449:  %1:_(<4 x s32>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<4 x s32>) from constant-pool, addrspace 4) 
# | next:652'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3450:  G_STORE %1(<4 x s32>), %0(p1) :: (store (<4 x s32>) into %ir.out, align 4, addrspace 1) 
# | next:652'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3451:  S_ENDPGM 0 
# | next:652'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           3591:  bb.1.entry: 
# |           3592:  liveins: $sgpr8_sgpr9 
# |           3593:   
# |           3594:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           3595:  %9:_(s64) = G_CONSTANT i64 0 
# |           3596:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:685'0                                       X error: no match found
# | next:685'1                                         with "PTR_ADD" equal to "%8"
# |           3597:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:685'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:685'2       ?                                                                                                            possible intended match
# |           3598:  %11:_(s64) = G_CONSTANT i64 8 
# | next:685'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3599:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:685'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3600:  %1:_(<8 x s8>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<8 x s8>) from constant-pool, addrspace 4) 
# | next:685'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3601:  G_STORE %1(<8 x s8>), %0(p1) :: (store (<8 x s8>) into %ir.out, addrspace 1) 
# | next:685'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3602:  S_ENDPGM 0 
# | next:685'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           3742:  bb.1.entry: 
# |           3743:  liveins: $sgpr8_sgpr9 
# |           3744:   
# |           3745:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           3746:  %9:_(s64) = G_CONSTANT i64 0 
# |           3747:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:718'0                                       X error: no match found
# | next:718'1                                         with "PTR_ADD" equal to "%8"
# |           3748:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:718'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:718'2       ?                                                                                                            possible intended match
# |           3749:  %11:_(s64) = G_CONSTANT i64 16 
# | next:718'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3750:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:718'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3751:  %1:_(<8 x s16>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<8 x s16>) from constant-pool, addrspace 4) 
# | next:718'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3752:  G_STORE %1(<8 x s16>), %0(p1) :: (store (<8 x s16>) into %ir.out, addrspace 1) 
# | next:718'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3753:  S_ENDPGM 0 
# | next:718'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           3893:  bb.1.entry: 
# |           3894:  liveins: $sgpr8_sgpr9 
# |           3895:   
# |           3896:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           3897:  %9:_(s64) = G_CONSTANT i64 0 
# |           3898:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:751'0                                       X error: no match found
# | next:751'1                                         with "PTR_ADD" equal to "%8"
# |           3899:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:751'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:751'2       ?                                                                                                            possible intended match
# |           3900:  %11:_(s64) = G_CONSTANT i64 32 
# | next:751'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3901:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:751'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3902:  %1:_(<8 x s32>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<8 x s32>) from constant-pool, align 16, addrspace 4) 
# | next:751'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3903:  G_STORE %1(<8 x s32>), %0(p1) :: (store (<8 x s32>) into %ir.out, align 4, addrspace 1) 
# | next:751'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           3904:  S_ENDPGM 0 
# | next:751'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           4044:  bb.1.entry: 
# |           4045:  liveins: $sgpr8_sgpr9 
# |           4046:   
# |           4047:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           4048:  %9:_(s64) = G_CONSTANT i64 0 
# |           4049:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:784'0                                       X error: no match found
# | next:784'1                                         with "PTR_ADD" equal to "%8"
# |           4050:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:784'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:784'2       ?                                                                                                            possible intended match
# |           4051:  %11:_(s64) = G_CONSTANT i64 32 
# | next:784'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4052:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:784'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4053:  %1:_(<8 x s32>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<8 x s32>) from constant-pool, align 16, addrspace 4) 
# | next:784'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4054:  G_STORE %1(<8 x s32>), %0(p1) :: (store (<8 x s32>) into %ir.out, align 4, addrspace 1) 
# | next:784'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4055:  S_ENDPGM 0 
# | next:784'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           4195:  bb.1.entry: 
# |           4196:  liveins: $sgpr8_sgpr9 
# |           4197:   
# |           4198:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           4199:  %9:_(s64) = G_CONSTANT i64 0 
# |           4200:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:817'0                                       X error: no match found
# | next:817'1                                         with "PTR_ADD" equal to "%8"
# |           4201:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:817'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:817'2       ?                                                                                                            possible intended match
# |           4202:  %11:_(s64) = G_CONSTANT i64 16 
# | next:817'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4203:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:817'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4204:  %1:_(<16 x s8>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<16 x s8>) from constant-pool, addrspace 4) 
# | next:817'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4205:  G_STORE %1(<16 x s8>), %0(p1) :: (store (<16 x s8>) into %ir.out, addrspace 1) 
# | next:817'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4206:  S_ENDPGM 0 
# | next:817'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           4346:  bb.1.entry: 
# |           4347:  liveins: $sgpr8_sgpr9 
# |           4348:   
# |           4349:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           4350:  %9:_(s64) = G_CONSTANT i64 0 
# |           4351:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:850'0                                       X error: no match found
# | next:850'1                                         with "PTR_ADD" equal to "%8"
# |           4352:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:850'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:850'2       ?                                                                                                            possible intended match
# |           4353:  %11:_(s64) = G_CONSTANT i64 32 
# | next:850'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4354:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:850'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4355:  %1:_(<16 x s16>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<16 x s16>) from constant-pool, align 16, addrspace 4) 
# | next:850'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4356:  G_STORE %1(<16 x s16>), %0(p1) :: (store (<16 x s16>) into %ir.out, addrspace 1) 
# | next:850'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4357:  S_ENDPGM 0 
# | next:850'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           4497:  bb.1.entry: 
# |           4498:  liveins: $sgpr8_sgpr9 
# |           4499:   
# |           4500:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           4501:  %9:_(s64) = G_CONSTANT i64 0 
# |           4502:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:883'0                                       X error: no match found
# | next:883'1                                         with "PTR_ADD" equal to "%8"
# |           4503:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:883'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:883'2       ?                                                                                                            possible intended match
# |           4504:  %11:_(s64) = G_CONSTANT i64 64 
# | next:883'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4505:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:883'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4506:  %1:_(<16 x s32>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<16 x s32>) from constant-pool, align 16, addrspace 4) 
# | next:883'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4507:  G_STORE %1(<16 x s32>), %0(p1) :: (store (<16 x s32>) into %ir.out, align 4, addrspace 1) 
# | next:883'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4508:  S_ENDPGM 0 
# | next:883'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           4648:  bb.1.entry: 
# |           4649:  liveins: $sgpr8_sgpr9 
# |           4650:   
# |           4651:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           4652:  %9:_(s64) = G_CONSTANT i64 0 
# |           4653:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:916'0                                       X error: no match found
# | next:916'1                                         with "PTR_ADD" equal to "%8"
# |           4654:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:916'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:916'2       ?                                                                                                            possible intended match
# |           4655:  %11:_(s64) = G_CONSTANT i64 64 
# | next:916'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4656:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:916'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4657:  %1:_(<16 x s32>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<16 x s32>) from constant-pool, align 16, addrspace 4) 
# | next:916'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4658:  G_STORE %1(<16 x s32>), %0(p1) :: (store (<16 x s32>) into %ir.out, align 4, addrspace 1) 
# | next:916'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4659:  S_ENDPGM 0 
# | next:916'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           4799:  bb.1 (%ir-block.0): 
# |           4800:  liveins: $sgpr8_sgpr9 
# |           4801:   
# |           4802:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           4803:  %9:_(s64) = G_CONSTANT i64 0 
# |           4804:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:949'0                                       X error: no match found
# | next:949'1                                         with "PTR_ADD" equal to "%8"
# |           4805:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:949'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:949'2       ?                                                                                                            possible intended match
# |           4806:  %11:_(s64) = G_CONSTANT i64 8 
# | next:949'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4807:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:949'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4808:  %1:_(s64) = G_LOAD %10(p4) :: (dereferenceable invariant load (s64) from constant-pool, addrspace 4) 
# | next:949'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4809:  G_STORE %1(s64), %0(p1) :: (store (s64) into %ir.out, addrspace 1) 
# | next:949'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4810:  S_ENDPGM 0 
# | next:949'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           4950:  bb.1.entry: 
# |           4951:  liveins: $sgpr8_sgpr9 
# |           4952:   
# |           4953:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           4954:  %9:_(s64) = G_CONSTANT i64 0 
# |           4955:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:981'0                                       X error: no match found
# | next:981'1                                         with "PTR_ADD" equal to "%8"
# |           4956:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:981'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:981'2       ?                                                                                                            possible intended match
# |           4957:  %11:_(s64) = G_CONSTANT i64 8 
# | next:981'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4958:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:981'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4959:  %1:_(s64) = G_LOAD %10(p4) :: (dereferenceable invariant load (s64) from constant-pool, addrspace 4) 
# | next:981'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4960:  G_STORE %1(s64), %0(p1) :: (store (s64) into %ir.out, addrspace 1) 
# | next:981'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           4961:  S_ENDPGM 0 
# | next:981'0      ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           5101:  bb.1 (%ir-block.0): 
# |           5102:  liveins: $sgpr8_sgpr9 
# |           5103:   
# |           5104:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           5105:  %9:_(s64) = G_CONSTANT i64 0 
# |           5106:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1014'0                                      X error: no match found
# | next:1014'1                                        with "PTR_ADD" equal to "%8"
# |           5107:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1014'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1014'2      ?                                                                                                            possible intended match
# |           5108:  %11:_(s64) = G_CONSTANT i64 8 
# | next:1014'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5109:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:1014'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5110:  %1:_(s1) = G_LOAD %10(p4) :: (dereferenceable invariant load (s1) from constant-pool, align 8, addrspace 4) 
# | next:1014'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5111:  G_STORE %1(s1), %0(p1) :: (store (s1) into %ir.out, addrspace 1) 
# | next:1014'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5112:  S_ENDPGM 0 
# | next:1014'0     ~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           5253:  bb.1 (%ir-block.0): 
# |           5254:  liveins: $sgpr8_sgpr9 
# |           5255:   
# |           5256:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           5257:  %9:_(s64) = G_CONSTANT i64 0 
# |           5258:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1046'0                                      X error: no match found
# | next:1046'1                                        with "PTR_ADD" equal to "%8"
# |           5259:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1046'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1046'2      ?                                                                                                            possible intended match
# |           5260:  %11:_(s64) = G_CONSTANT i64 8 
# | next:1046'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5261:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:1046'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5262:  %1:_(s1) = G_LOAD %10(p4) :: (dereferenceable invariant load (s1) from constant-pool, align 8, addrspace 4) 
# | next:1046'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5263:  %19:_(s32) = G_ZEXT %1(s1) 
# | next:1046'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5264:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:1046'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           5406:  bb.1 (%ir-block.0): 
# |           5407:  liveins: $sgpr8_sgpr9 
# |           5408:   
# |           5409:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           5410:  %9:_(s64) = G_CONSTANT i64 0 
# |           5411:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1081'0                                      X error: no match found
# | next:1081'1                                        with "PTR_ADD" equal to "%8"
# |           5412:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1081'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1081'2      ?                                                                                                            possible intended match
# |           5413:  %11:_(s64) = G_CONSTANT i64 8 
# | next:1081'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5414:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:1081'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5415:  %1:_(s1) = G_LOAD %10(p4) :: (dereferenceable invariant load (s1) from constant-pool, align 8, addrspace 4) 
# | next:1081'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5416:  %19:_(s64) = G_ZEXT %1(s1) 
# | next:1081'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5417:  G_STORE %19(s64), %0(p1) :: (store (s64) into %ir.out, addrspace 1) 
# | next:1081'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           5559:  bb.1 (%ir-block.0): 
# |           5560:  liveins: $sgpr8_sgpr9 
# |           5561:   
# |           5562:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           5563:  %9:_(s64) = G_CONSTANT i64 0 
# |           5564:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1116'0                                      X error: no match found
# | next:1116'1                                        with "PTR_ADD" equal to "%8"
# |           5565:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1116'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1116'2      ?                                                                                                            possible intended match
# |           5566:  %11:_(s64) = G_CONSTANT i64 8 
# | next:1116'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5567:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:1116'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5568:  %1:_(s1) = G_LOAD %10(p4) :: (dereferenceable invariant load (s1) from constant-pool, align 8, addrspace 4) 
# | next:1116'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5569:  %19:_(s32) = G_SEXT %1(s1) 
# | next:1116'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5570:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:1116'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           5712:  bb.1 (%ir-block.0): 
# |           5713:  liveins: $sgpr8_sgpr9 
# |           5714:   
# |           5715:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           5716:  %9:_(s64) = G_CONSTANT i64 0 
# |           5717:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1151'0                                      X error: no match found
# | next:1151'1                                        with "PTR_ADD" equal to "%8"
# |           5718:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1151'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1151'2      ?                                                                                                            possible intended match
# |           5719:  %11:_(s64) = G_CONSTANT i64 8 
# | next:1151'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5720:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:1151'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5721:  %1:_(s1) = G_LOAD %10(p4) :: (dereferenceable invariant load (s1) from constant-pool, align 8, addrspace 4) 
# | next:1151'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5722:  %19:_(s64) = G_SEXT %1(s1) 
# | next:1151'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5723:  G_STORE %19(s64), %0(p1) :: (store (s64) into %ir.out, addrspace 1) 
# | next:1151'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           5862:  bb.1 (%ir-block.0): 
# |           5863:  liveins: $sgpr8_sgpr9 
# |           5864:   
# |           5865:  %4:_(p4) = COPY $sgpr8_sgpr9 
# |           5866:  %8:_(s64) = G_CONSTANT i64 0 
# |           5867:  %7:_(p4) = G_PTR_ADD %4, %8(s64) 
# | next:1188'0                                      X error: no match found
# | next:1188'1                                        with "PTR_ADD" equal to "%7"
# |           5868:  %0:_(s32) = G_LOAD %7(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4) 
# | next:1188'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1188'2      ?                                                                                                              possible intended match
# |           5869:  %16:_(p1) = G_IMPLICIT_DEF 
# | next:1188'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5870:  G_STORE %0(s32), %16(p1) :: (store (s32) into `ptr addrspace(1) poison`, addrspace 1) 
# | next:1188'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           5871:  S_ENDPGM 0 
# | next:1188'0     ~~~~~~~~~~~~
# |           5872: ... 
# | next:1188'0     ~~~~
# |           5873: --- 
# | next:1188'0     ~~~~
# |              .
# |              .
# |              .
# |           6009:  bb.1 (%ir-block.0): 
# |           6010:  liveins: $sgpr8_sgpr9 
# |           6011:   
# |           6012:  %4:_(p4) = COPY $sgpr8_sgpr9 
# |           6013:  %8:_(s64) = G_CONSTANT i64 0 
# |           6014:  %7:_(p4) = G_PTR_ADD %4, %8(s64) 
# | next:1216'0                                      X error: no match found
# | next:1216'1                                        with "PTR_ADD" equal to "%7"
# |           6015:  %0:_(s32) = G_LOAD %7(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4) 
# | next:1216'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1216'2      ?                                                                                                              possible intended match
# |           6016:  %16:_(p1) = G_IMPLICIT_DEF 
# | next:1216'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6017:  G_STORE %0(s32), %16(p1) :: (store (s32) into `ptr addrspace(1) poison`, addrspace 1) 
# | next:1216'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6018:  S_ENDPGM 0 
# | next:1216'0     ~~~~~~~~~~~~
# |           6019: ... 
# | next:1216'0     ~~~~
# |           6020: --- 
# | next:1216'0     ~~~~
# |              .
# |              .
# |              .
# |           6168:  bb.1 (%ir-block.0): 
# |           6169:  liveins: $sgpr8_sgpr9 
# |           6170:   
# |           6171:  %8:_(p4) = COPY $sgpr8_sgpr9 
# |           6172:  %12:_(s64) = G_CONSTANT i64 0 
# |           6173:  %11:_(p4) = G_PTR_ADD %8, %12(s64) 
# | next:1252'0                                        X error: no match found
# | next:1252'1                                          with "PTR_ADD" equal to "%11"
# |           6174:  %0:_(s32) = G_LOAD %11(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4) 
# | next:1252'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1252'2      ?                                                                                                               possible intended match
# |           6175:  %14:_(s64) = G_CONSTANT i64 8 
# | next:1252'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6176:  %13:_(p4) = G_PTR_ADD %8, %14(s64) 
# | next:1252'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6177:  %1:_(s64) = G_LOAD %13(p4) :: (dereferenceable invariant load (s64) from constant-pool, addrspace 4) 
# | next:1252'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6178:  %16:_(s64) = G_CONSTANT i64 16 
# | next:1252'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6179:  %15:_(p4) = G_PTR_ADD %8, %16(s64) 
# | next:1252'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           6343:  bb.1 (%ir-block.0): 
# |           6344:  liveins: $sgpr8_sgpr9 
# |           6345:   
# |           6346:  %8:_(p4) = COPY $sgpr8_sgpr9 
# |           6347:  %12:_(s64) = G_CONSTANT i64 0 
# |           6348:  %11:_(p4) = G_PTR_ADD %8, %12(s64) 
# | next:1320'0                                        X error: no match found
# | next:1320'1                                          with "PTR_ADD" equal to "%11"
# |           6349:  %0:_(p3) = G_LOAD %11(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4) 
# | next:1320'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1320'2      ?                                                                                                              possible intended match
# |           6350:  %14:_(s64) = G_CONSTANT i64 8 
# | next:1320'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6351:  %13:_(p4) = G_PTR_ADD %8, %14(s64) 
# | next:1320'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6352:  %1:_(p1) = G_LOAD %13(p4) :: (dereferenceable invariant load (s64) from constant-pool, addrspace 4) 
# | next:1320'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6353:  %16:_(s64) = G_CONSTANT i64 16 
# | next:1320'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6354:  %15:_(p4) = G_PTR_ADD %8, %16(s64) 
# | next:1320'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           6516:  bb.1 (%ir-block.1): 
# |           6517:  liveins: $sgpr8_sgpr9 
# |           6518:   
# |           6519:  %8:_(p4) = COPY $sgpr8_sgpr9 
# |           6520:  %12:_(s64) = G_CONSTANT i64 0 
# |           6521:  %11:_(p4) = G_PTR_ADD %8, %12(s64) 
# | next:1390'0                                        X error: no match found
# | next:1390'1                                          with "PTR_ADD" equal to "%11"
# |           6522:  %0:_(s32) = G_LOAD %11(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4) 
# | next:1390'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1390'2      ?                                                                                                               possible intended match
# |           6523:  %14:_(s64) = G_CONSTANT i64 4 
# | next:1390'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6524:  %13:_(p4) = G_PTR_ADD %8, %14(s64) 
# | next:1390'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6525:  %1:_(s64) = G_LOAD %13(p4) :: (dereferenceable invariant load (s64) from constant-pool, align 4, addrspace 4) 
# | next:1390'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6526:  %16:_(s64) = G_CONSTANT i64 13 
# | next:1390'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6527:  %15:_(p4) = G_PTR_ADD %8, %16(s64) 
# | next:1390'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           6819:  bb.1 (%ir-block.0): 
# |           6820:  liveins: $sgpr8_sgpr9 
# |           6821:   
# |           6822:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           6823:  %9:_(s64) = G_CONSTANT i64 0 
# |           6824:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1468'0                                      X error: no match found
# | next:1468'1                                        with "PTR_ADD" equal to "%8"
# |           6825:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1468'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1468'2      ?                                                                                                            possible intended match
# |           6826:  %10:_(s64) = G_CONSTANT i64 8 
# | next:1468'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6827:  %1:_(p4) = G_PTR_ADD %5, %10(s64) 
# | next:1468'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6828:  %18:_(s8) = G_LOAD %1(p4) :: (dereferenceable invariant load (s8) from %ir.in.byref, addrspace 4) 
# | next:1468'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6829:  %19:_(s32) = G_ZEXT %18(s8) 
# | next:1468'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6830:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:1468'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           6972:  bb.1 (%ir-block.0): 
# |           6973:  liveins: $sgpr8_sgpr9 
# |           6974:   
# |           6975:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           6976:  %9:_(s64) = G_CONSTANT i64 0 
# |           6977:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1504'0                                      X error: no match found
# | next:1504'1                                        with "PTR_ADD" equal to "%8"
# |           6978:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1504'2      ?                                                                                                            possible intended match
# |           6979:  %10:_(s64) = G_CONSTANT i64 8 
# | next:1504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6980:  %1:_(p4) = G_PTR_ADD %5, %10(s64) 
# | next:1504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6981:  %18:_(s16) = G_LOAD %1(p4) :: (dereferenceable invariant load (s16) from %ir.in.byref, addrspace 4) 
# | next:1504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6982:  %19:_(s32) = G_ZEXT %18(s16) 
# | next:1504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           6983:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:1504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           7127:  bb.1 (%ir-block.0): 
# |           7128:  liveins: $sgpr8_sgpr9 
# |           7129:   
# |           7130:  %6:_(p4) = COPY $sgpr8_sgpr9 
# |           7131:  %10:_(s64) = G_CONSTANT i64 0 
# |           7132:  %9:_(p4) = G_PTR_ADD %6, %10(s64) 
# | next:1540'0                                       X error: no match found
# | next:1540'1                                         with "PTR_ADD" equal to "%9"
# |           7133:  %0:_(p1) = G_LOAD %9(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1540'2      ?                                                                                                            possible intended match
# |           7134:  %11:_(s64) = G_CONSTANT i64 8 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7135:  %1:_(p4) = G_PTR_ADD %6, %11(s64) 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7136:  %13:_(s64) = G_CONSTANT i64 12 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7137:  %12:_(p4) = G_PTR_ADD %6, %13(s64) 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7138:  %2:_(s32) = G_LOAD %12(p4) :: (dereferenceable invariant load (s32) from constant-pool, addrspace 4) 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           7285:  bb.1 (%ir-block.0): 
# |           7286:  liveins: $sgpr8_sgpr9 
# |           7287:   
# |           7288:  %6:_(p4) = COPY $sgpr8_sgpr9 
# |           7289:  %10:_(s64) = G_CONSTANT i64 0 
# |           7290:  %9:_(p4) = G_PTR_ADD %6, %10(s64) 
# | next:1582'0                                       X error: no match found
# | next:1582'1                                         with "PTR_ADD" equal to "%9"
# |           7291:  %0:_(p1) = G_LOAD %9(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1582'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1582'2      ?                                                                                                            possible intended match
# |           7292:  %11:_(s64) = G_CONSTANT i64 16 
# | next:1582'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7293:  %1:_(p4) = G_PTR_ADD %6, %11(s64) 
# | next:1582'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7294:  %13:_(s64) = G_CONSTANT i64 32 
# | next:1582'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7295:  %12:_(p4) = G_PTR_ADD %6, %13(s64) 
# | next:1582'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7296:  %2:_(s32) = G_LOAD %12(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4) 
# | next:1582'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           7443:  bb.1 (%ir-block.0): 
# |           7444:  liveins: $sgpr8_sgpr9 
# |           7445:   
# |           7446:  %6:_(p4) = COPY $sgpr8_sgpr9 
# |           7447:  %10:_(s64) = G_CONSTANT i64 0 
# |           7448:  %9:_(p4) = G_PTR_ADD %6, %10(s64) 
# | next:1624'0                                       X error: no match found
# | next:1624'1                                         with "PTR_ADD" equal to "%9"
# |           7449:  %0:_(p1) = G_LOAD %9(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1624'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1624'2      ?                                                                                                            possible intended match
# |           7450:  %11:_(s64) = G_CONSTANT i64 256 
# | next:1624'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7451:  %1:_(p4) = G_PTR_ADD %6, %11(s64) 
# | next:1624'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7452:  %13:_(s64) = G_CONSTANT i64 260 
# | next:1624'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7453:  %12:_(p4) = G_PTR_ADD %6, %13(s64) 
# | next:1624'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7454:  %2:_(s32) = G_LOAD %12(p4) :: (dereferenceable invariant load (s32) from constant-pool, addrspace 4) 
# | next:1624'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           7602:  bb.1 (%ir-block.1): 
# |           7603:  liveins: $sgpr8_sgpr9 
# |           7604:   
# |           7605:  %7:_(p4) = COPY $sgpr8_sgpr9 
# |           7606:  %11:_(s64) = G_CONSTANT i64 0 
# |           7607:  %10:_(p4) = G_PTR_ADD %7, %11(s64) 
# | next:1666'0                                        X error: no match found
# | next:1666'1                                          with "PTR_ADD" equal to "%10"
# |           7608:  %0:_(p1) = G_LOAD %10(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1666'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1666'2      ?                                                                                                             possible intended match
# |           7609:  %12:_(s64) = G_CONSTANT i64 64 
# | next:1666'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7610:  %2:_(p4) = G_PTR_ADD %7, %12(s64) 
# | next:1666'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7611:  %14:_(s64) = G_CONSTANT i64 128 
# | next:1666'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7612:  %13:_(p4) = G_PTR_ADD %7, %14(s64) 
# | next:1666'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7613:  %3:_(s32) = G_LOAD %13(p4) :: (dereferenceable invariant load (s32) from constant-pool, align 16, addrspace 4) 
# | next:1666'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           7758:  bb.1 (%ir-block.0): 
# |           7759:  liveins: $sgpr8_sgpr9 
# |           7760:   
# |           7761:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           7762:  %9:_(s64) = G_CONSTANT i64 0 
# |           7763:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1709'0                                      X error: no match found
# | next:1709'1                                        with "PTR_ADD" equal to "%8"
# |           7764:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1709'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1709'2      ?                                                                                                            possible intended match
# |           7765:  %11:_(s64) = G_CONSTANT i64 8 
# | next:1709'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7766:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:1709'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7767:  %1:_(p1) = G_ADDRSPACE_CAST %10(p4) 
# | next:1709'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7768:  %19:_(s32) = G_LOAD %1(p1) :: (dereferenceable "amdgpu-noclobber" load (s32) from %ir.in.byref, addrspace 1) 
# | next:1709'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7769:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:1709'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           7911:  bb.1 (%ir-block.0): 
# |           7912:  liveins: $sgpr8_sgpr9 
# |           7913:   
# |           7914:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           7915:  %9:_(s64) = G_CONSTANT i64 0 
# |           7916:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1744'0                                      X error: no match found
# | next:1744'1                                        with "PTR_ADD" equal to "%8"
# |           7917:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1744'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1744'2      ?                                                                                                            possible intended match
# |           7918:  %11:_(s64) = G_CONSTANT i64 8 
# | next:1744'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7919:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:1744'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7920:  %1:_(p0) = G_ADDRSPACE_CAST %10(p4) 
# | next:1744'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7921:  %19:_(s32) = G_LOAD %1(p0) :: (dereferenceable load (s32) from %ir.in.byref) 
# | next:1744'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           7922:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:1744'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           8064:  bb.1 (%ir-block.0): 
# |           8065:  liveins: $sgpr8_sgpr9 
# |           8066:   
# |           8067:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           8068:  %9:_(s64) = G_CONSTANT i64 0 
# |           8069:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1779'0                                      X error: no match found
# | next:1779'1                                        with "PTR_ADD" equal to "%8"
# |           8070:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1779'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1779'2      ?                                                                                                            possible intended match
# |           8071:  %11:_(s64) = G_CONSTANT i64 8 
# | next:1779'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8072:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:1779'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8073:  %1:_(p6) = G_ADDRSPACE_CAST %10(p4) 
# | next:1779'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8074:  %19:_(s32) = G_LOAD %1(p6) :: (dereferenceable invariant load (s32) from %ir.in.byref, addrspace 6) 
# | next:1779'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8075:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:1779'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           8217:  bb.1 (%ir-block.0): 
# |           8218:  liveins: $sgpr8_sgpr9 
# |           8219:   
# |           8220:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           8221:  %9:_(s64) = G_CONSTANT i64 0 
# |           8222:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1814'0                                      X error: no match found
# | next:1814'1                                        with "PTR_ADD" equal to "%8"
# |           8223:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1814'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1814'2      ?                                                                                                            possible intended match
# |           8224:  %11:_(s64) = G_CONSTANT i64 8 
# | next:1814'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8225:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:1814'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8226:  %1:_(p999) = G_ADDRSPACE_CAST %10(p4) 
# | next:1814'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8227:  %19:_(s32) = G_LOAD %1(p999) :: (dereferenceable load (s32) from %ir.in.byref, addrspace 999) 
# | next:1814'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8228:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:1814'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           8370:  bb.1 (%ir-block.0): 
# |           8371:  liveins: $sgpr8_sgpr9 
# |           8372:   
# |           8373:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           8374:  %9:_(s64) = G_CONSTANT i64 0 
# |           8375:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:1850'0                                      X error: no match found
# | next:1850'1                                        with "PTR_ADD" equal to "%8"
# |           8376:  %0:_(p1) = G_LOAD %8(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1850'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1850'2      ?                                                                                                            possible intended match
# |           8377:  %11:_(s64) = G_CONSTANT i64 8 
# | next:1850'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8378:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:1850'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8379:  %1:_(p3) = G_ADDRSPACE_CAST %10(p4) 
# | next:1850'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8380:  %19:_(s32) = G_LOAD %1(p3) :: (dereferenceable load (s32) from %ir.in.byref, addrspace 3) 
# | next:1850'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8381:  G_STORE %19(s32), %0(p1) :: (store (s32) into %ir.out, addrspace 1) 
# | next:1850'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           8528:  bb.1 (%ir-block.0): 
# |           8529:  liveins: $sgpr8_sgpr9 
# |           8530:   
# |           8531:  %7:_(p4) = COPY $sgpr8_sgpr9 
# |           8532:  %11:_(s64) = G_CONSTANT i64 0 
# |           8533:  %10:_(p4) = G_PTR_ADD %7, %11(s64) 
# | next:1885'0                                        X error: no match found
# | next:1885'1                                          with "PTR_ADD" equal to "%10"
# |           8534:  %0:_(p1) = G_LOAD %10(p4) :: (dereferenceable invariant load (p1) from constant-pool, align 16, addrspace 4) 
# | next:1885'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1885'2      ?                                                                                                             possible intended match
# |           8535:  %12:_(s64) = G_CONSTANT i64 8 
# | next:1885'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8536:  %1:_(p4) = G_PTR_ADD %7, %12(s64) 
# | next:1885'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8537:  %13:_(s64) = G_CONSTANT i64 12 
# | next:1885'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8538:  %2:_(p4) = G_PTR_ADD %7, %13(s64) 
# | next:1885'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8539:  %15:_(s64) = G_CONSTANT i64 16 
# | next:1885'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |           8832:  bb.1 (%ir-block.0): 
# |           8833:  liveins: $sgpr8_sgpr9 
# |           8834:   
# |           8835:  %4:_(p4) = COPY $sgpr8_sgpr9 
# |           8836:  %8:_(s64) = G_CONSTANT i64 0 
# |           8837:  %7:_(p4) = G_PTR_ADD %4, %8(s64) 
# | next:1966'0                                      X error: no match found
# | next:1966'1                                        with "PTR_ADD" equal to "%7"
# |           8838:  %0:_(p3) = G_LOAD %7(p4) :: (dereferenceable invariant load (p3) from constant-pool, align 16, addrspace 4) 
# | next:1966'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1966'2      ?                                                                                                            possible intended match
# |           8839:  %16:_(s8) = G_CONSTANT i8 9 
# | next:1966'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8840:  G_STORE %16(s8), %0(p3) :: (store (s8) into %ir.arg, align 4, addrspace 3) 
# | next:1966'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           8841:  S_ENDPGM 0 
# | next:1966'0     ~~~~~~~~~~~~
# |           8842: ... 
# | next:1966'0     ~~~~
# |           8843: --- 
# | next:1966'0     ~~~~
# |              .
# |              .
# |              .
# |           9123:  bb.1 (%ir-block.0): 
# |           9124:  liveins: $sgpr8_sgpr9 
# |           9125:   
# |           9126:  %4:_(p4) = COPY $sgpr8_sgpr9 
# |           9127:  %8:_(s64) = G_CONSTANT i64 0 
# |           9128:  %7:_(p4) = G_PTR_ADD %4, %8(s64) 
# | next:2018'0                                      X error: no match found
# | next:2018'1                                        with "PTR_ADD" equal to "%7"
# |           9129:  %0:_(<2 x p1>) = G_LOAD %7(p4) :: (dereferenceable invariant load (<2 x p1>) from constant-pool, addrspace 4) 
# | next:2018'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2018'2      ?                                                                                                              possible intended match
# |           9130:  %16:_(p1) = G_IMPLICIT_DEF 
# | next:2018'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           9131:  G_STORE %0(<2 x p1>), %16(p1) :: (store (<2 x p1>) into `ptr addrspace(1) poison`, addrspace 1) 
# | next:2018'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           9132:  S_ENDPGM 0 
# | next:2018'0     ~~~~~~~~~~~~
# |           9133: ... 
# | next:2018'0     ~~~~
# |           9134: --- 
# | next:2018'0     ~~~~
# |              .
# |              .
# |              .
# |           9270:  bb.1 (%ir-block.0): 
# |           9271:  liveins: $sgpr8_sgpr9 
# |           9272:   
# |           9273:  %4:_(p4) = COPY $sgpr8_sgpr9 
# |           9274:  %8:_(s64) = G_CONSTANT i64 0 
# |           9275:  %7:_(p4) = G_PTR_ADD %4, %8(s64) 
# | next:2046'0                                      X error: no match found
# | next:2046'1                                        with "PTR_ADD" equal to "%7"
# |           9276:  %0:_(<2 x p3>) = G_LOAD %7(p4) :: (dereferenceable invariant load (<2 x p3>) from constant-pool, align 16, addrspace 4) 
# | next:2046'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2046'2      ?                                                                                                                        possible intended match
# |           9277:  %16:_(p1) = G_IMPLICIT_DEF 
# | next:2046'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           9278:  G_STORE %0(<2 x p3>), %16(p1) :: (store (<2 x p3>) into `ptr addrspace(1) poison`, addrspace 1) 
# | next:2046'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           9279:  S_ENDPGM 0 
# | next:2046'0     ~~~~~~~~~~~~
# |           9280: ... 
# | next:2046'0     ~~~~
# |           9281: --- 
# | next:2046'0     ~~~~
# |              .
# |              .
# |              .
# |           9422:  bb.1 (%ir-block.0): 
# |           9423:  liveins: $sgpr8_sgpr9 
# |           9424:   
# |           9425:  %5:_(p4) = COPY $sgpr8_sgpr9 
# |           9426:  %9:_(s64) = G_CONSTANT i64 0 
# |           9427:  %8:_(p4) = G_PTR_ADD %5, %9(s64) 
# | next:2074'0                                      X error: no match found
# | next:2074'1                                        with "PTR_ADD" equal to "%8"
# |           9428:  %0:_(<2 x p1>) = G_LOAD %8(p4) :: (dereferenceable invariant load (<2 x s64>) from constant-pool, addrspace 4) 
# | next:2074'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           9429:  %11:_(s64) = G_CONSTANT i64 16 
# | next:2074'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           9430:  %10:_(p4) = G_PTR_ADD %5, %11(s64) 
# | next:2074'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           9431:  %1:_(<2 x p3>) = G_LOAD %10(p4) :: (dereferenceable invariant load (<2 x s32>) from constant-pool, align 16, addrspace 4) 
# | next:2074'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:2074'2      ?                                                                                                                          possible intended match
# |           9432:  %19:_(p1) = G_IMPLICIT_DEF 
# | next:2074'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           9433:  G_STORE %0(<2 x p1>), %19(p1) :: (store (<2 x p1>) into `ptr addrspace(1) poison`, addrspace 1) 
# | next:2074'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           9434:  %21:_(s64) = G_CONSTANT i64 16 
# | next:2074'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           9435:  %20:_(p1) = nuw inbounds G_PTR_ADD %19, %21(s64) 
# | next:2074'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           9436:  G_STORE %1(<2 x p3>), %20(p1) :: (store (<2 x p3>) into `ptr addrspace(1) poison` + 16, align 16, addrspace 1) 
# | next:2074'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the infrastructure label.

@arsenm arsenm force-pushed the users/arsenm/amdgpu/handle-invariant-load-split branch from a406bd2 to 954dc93 Compare November 20, 2025 18:59
@arsenm arsenm force-pushed the users/arsenm/amdgpu/use-constant-pool-kernarg-loads branch from ba69569 to be8c7c9 Compare November 20, 2025 18:59
@arsenm arsenm force-pushed the users/arsenm/amdgpu/handle-invariant-load-split branch from 954dc93 to 4be9e5b Compare November 21, 2025 00:58
@arsenm arsenm force-pushed the users/arsenm/amdgpu/use-constant-pool-kernarg-loads branch from be8c7c9 to d406c2c Compare November 21, 2025 00:58
Base automatically changed from users/arsenm/amdgpu/handle-invariant-load-split to main November 21, 2025 18:58
Copy link
Collaborator

@nhaehnle nhaehnle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems reasonable to me.

// implicit kernargs.
if (AMDGPU::getAMDHSACodeObjectVersion(*MF.getFunction().getParent()) >=
AMDGPU::AMDHSA_COV5) {
// TODO: can we be smarter about machine pointer info?
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this TODO still apply?

// TODO: can we be smarter about machine pointer info?
MachinePointerInfo PtrInfo(AMDGPUAS::CONSTANT_ADDRESS);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not use the kernarg segment pointer here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not in the kernarg segment, it's in the dispatch packet

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or queue packet

@arsenm arsenm enabled auto-merge (squash) December 2, 2025 01:45
@arsenm arsenm disabled auto-merge December 2, 2025 12:15
@arsenm arsenm force-pushed the users/arsenm/amdgpu/use-constant-pool-kernarg-loads branch from cc3f048 to 74552a4 Compare December 2, 2025 12:15
@arsenm arsenm enabled auto-merge (squash) December 2, 2025 12:16
This isn't quite a constant pool, but probably close enough for this
purpose. We just need some known invariant value address. The aliasing
queries against the real kernarg base pointer will falsely report
no aliasing, but for invariant memory it probably doesn't matter.
The test changes are mostly GlobalISel specific regressions.
GlobalISel is still relying on isUniformMMO, but it doesn't really
have an excuse for doing so. These should be avoidable with new
regbankselect.

There is an additional regression for addrspacecast for cov4. We
probably ought to be using a separate PseudoSourceValue for the
access of the queue pointer.
@arsenm arsenm force-pushed the users/arsenm/amdgpu/use-constant-pool-kernarg-loads branch from f411dc4 to 9ce0c07 Compare December 2, 2025 15:16
@arsenm arsenm merged commit 23e6dbf into main Dec 2, 2025
7 of 9 checks passed
@arsenm arsenm deleted the users/arsenm/amdgpu/use-constant-pool-kernarg-loads branch December 2, 2025 15:48
fhahn pushed a commit to fhahn/llvm-project that referenced this pull request Dec 2, 2025
llvm#168917)

This isn't quite a constant pool, but probably close enough for this
purpose. We just need some known invariant value address. The aliasing
queries against the real kernarg base pointer will falsely report
no aliasing, but for invariant memory it probably doesn't matter.
fhahn pushed a commit to fhahn/llvm-project that referenced this pull request Dec 2, 2025
llvm#168917)

This isn't quite a constant pool, but probably close enough for this
purpose. We just need some known invariant value address. The aliasing
queries against the real kernarg base pointer will falsely report
no aliasing, but for invariant memory it probably doesn't matter.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants